package com.lzh.persevere.utils;

import java.util.regex.Pattern;

/**
 * @author luzhiheng
 * @since 2024-10-21
 */
public class PatternUtil {

    /**
     * yyyy-MM-dd HH:mm:ss正则匹配
     */
    private Pattern PATTERN_DATE_TIME = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-4]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");

    /**
     * yyyy-MM-dd HH:mm:ss格式正则校验
     *
     * @param datetime 时间格式
     * @return boolean
     */
    public boolean checkDateTime(String datetime) {
        return PATTERN_DATE_TIME.matcher(datetime).matches();
    }

    public static void main(String[] args) {
        boolean b = new PatternUtil().checkDateTime("2020-04-09 00:00:00");
        System.out.println(b);
    }
}
